今天試寫一個簡單的javascript字串反轉時,
發現單純使用replace
的話,只會取代字串中的第一個值,
程式碼如下:
var str = "ABCD";
var result = [];
for (var i = str.length - 1; i >= 0; i--)
{
result.push(str[i]);
}
console.log(result.toString().replace(",",""));
執行結果:"DC,B,A"
處理這個問題有兩種做法,第一種是針對需要取代的字元使用正規表達式:
使用斜線包住需要取代的字串,並在最後加上g
代表指定全域:/,/g
用這樣的表達式去指定程式調整字串中所有需要取代的部分。
var str = "ABCD";
var result = [];
for (var i = str.length - 1; i >= 0; i--)
{
result.push(str[i]);
}
console.log(result.toString().replace(/,/g,""));
第二種是改為使用replaceAll
,這樣就可以很直觀的把所有指定字元都取代掉了。
var str = "ABCD";
var result = [];
for (var i = str.length - 1; i >= 0; i--)
{
result.push(str[i]);
}
console.log(result.toString().replaceAll(",",""));